##线素场 条形磁铁的磁力线的微分方程的方向场
import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-5,5,20)
y=np.linspace(-5,5,20)
X,Y=np.meshgrid(x,y)
a=2
myeps=4
U = (X + a)/((X + a)**2 + Y**2)**(3/2) - (X - a)/((X - a)**2 + Y**2)**(3/2) 
V = Y/((X + a)**2 + Y**2)**(3/2) - Y/((X - a)**2 + Y**2)**(3/2)

# 离点磁荷太近的箭头太长，不画
# cc1 = (X-a)**2+Y**2 < myeps or cc2 = (X+a)**2+Y**2 < myeps
# U[cc]=0
# V[cc]=0
# plt.quiver(X,Y,U,V)

# 所有箭头改成全部一样长
UVmod=np.sqrt(U**2+V**2)
Um=U/UVmod
Vm=V/UVmod

plt.quiver(X,Y,Um,Vm)
plt.savefig('magnetic_field.png')

